// 手写instanceof
// instanceof 实例
// 不是血缘关系 原型关系


// r => new Person
// r instanceof Person
// r instanceof Object

// 某个对象出现在原型链上，对象就是他的实例
// obj 实例 Fn 构造函数 prototype
// instanceof 右侧接受的必须是函数
const myInstanceof=(obj,Fn)=>{
    if(typeof obj !=='object') return false;
    const structure = obj.__proto__; // 私有原型属性 
    if(structure==null) return false;
    if(structure == Fn.prototype){
        return true;
    }
    else{
        return myInstanceof(structure,Fn);
    }
}

console.log(myInstanceof([],Array));
console.log(myInstanceof({},Object));
console.log(myInstanceof(/1/,RegExp));
const Fn1=function(){};
const a =new Fn1();
console.log(myInstanceof(a,Fn1));
console.log(myInstanceof(new Number(1),Number));
console.log(myInstanceof(1,Number)); // false